package com.bjx.system.service;

import cn.hutool.core.lang.tree.Tree;
import com.bjx.system.domain.vo.MenuVO;

import java.util.List;

/**
 * @desc: 菜单服务接口
 * @author: liushuai
 * @date: 2022/7/6 13:52
 */
public interface IMenuService {

    /**
     * 插入菜单
     * @param menuVO
     * @Author: liushuai
     * @Date: 2022/7/7 14:51
     */
    void insertMenu(MenuVO menuVO);

    /**
     * 根据当前登录用户查询菜单树
     * @param
     * @return: cn.hutool.core.lang.tree.Tree<java.lang.String>
     * @Author: liushuai
     * @Date: 2022/7/7 15:25
     */
    List<Tree<String>> listMenuTreeByLoginUser();
    
    /**
     * 修改菜单
     * @param menuVO
     * @Author: liushuai
     * @Date: 2022/10/12
     */
    void updateMenu(MenuVO menuVO);
    /**
     * 根据菜单id删除菜单
     * @param menuId
     * @return: R
     * @Author: liushuai
     * @Date:  2022/10/12
     */
    void deleteMenuByMenuId(Long menuId);
    /**
     * 根据菜单id查询菜单
     * @param menuId
     * @return: R<MenuVO>
     * @Author: liushuai
     * @Date: 2022/10/12
     */
    MenuVO selectMenuByMenuId(Long menuId);

    /**
     * 查询所有的菜单权限
     * @param  
     * @return: java.util.List<cn.hutool.core.lang.tree.Tree<java.lang.String>>
     * @Author: liushuai
     * @Date: 2022/10/12 21:35
     */
    List<Tree<String>> listMenuAuthTree();

    /**
     * 查询所有pid列表
     * @param
     * @return: java.util.List<java.lang.Long>
     * @Author: liushuai
     * @Date: 2022/10/14 21:37
     */
    List<Long> listPidAll();


}
